# coding=utf-8
import tensorflow as tf
#要保存后csv格式的文件名
file_name_string="data.csv"
filename_queue = tf.train.string_input_producer([file_name_string])
#每次一行
reader = tf.TextLineReader()
key,value = reader.read(filename_queue)
record_defaults = [[1.0], [1.0], [1.0], [1.0], [1.0], [1.0]]  # 这里的数据类型决定了读取的数据类型，而且必须是list形式
col1, col2, col3, col4, col5, col6 = tf.decode_csv(value, record_defaults=record_defaults)  # 解析出的每一个属性都是rank为0的标量

# 指定w和b变量的取值范围（利用TensorFlow来得到w和b的值）
w1 = tf.Variable(tf.random_uniform([1], -1.0, 1.0))  # 随机生成一个在[-1,1]范围的均匀分布数值
w2 = tf.Variable(tf.random_uniform([1], -1.0, 1.0))  # 随机生成一个在[-1,1]范围的均匀分布数值
w3 = tf.Variable(tf.random_uniform([1], -1.0, 1.0))  # 随机生成一个在[-1,1]范围的均匀分布数值
w4 = tf.Variable(tf.random_uniform([1], -1.0, 1.0))  # 随机生成一个在[-1,1]范围的均匀分布数值
w5 = tf.Variable(tf.random_uniform([1], -1.0, 1.0))  # 随机生成一个在[-1,1]范围的均匀分布数值

b = tf.Variable(tf.zeros([1]))  # set b=0

xs1 = tf.placeholder(tf.float32, [None, 1])
xs2 = tf.placeholder(tf.float32, [None, 1])
xs3 = tf.placeholder(tf.float32, [None, 1])
xs4 = tf.placeholder(tf.float32, [None, 1])
xs5 = tf.placeholder(tf.float32, [None, 1])
ys = tf.placeholder(tf.float32, [None, 1])

ys = xs1 * w1 + xs2 * w2 + xs3 * w3 + xs4 * w4 + xs5 * w5 + b

loss = tf.reduce_mean(tf.square(ys - y_data))

with tf.Session() as sess:
    #线程协调器
    coord = tf.train.Coordinator()
    #启动线程
    threads = tf.train.start_queue_runners(coord=coord)
    is_second_read=0
    first_line_key = ''
    while True:
       #x_第一个数据，y_第二个数据，dline_key中保存当前读取的行号
        x1, x2, x3, x4, x5, y, line_key = sess.run([col1, col2, col3, col4, col5, col6, key])
        if first_line_key == '':
            first_line_key = line_key

       #若当前line_key第二次等于第一行的key(即line1_name)则说明读取完，跳出循环
        if is_second_read==0 and line_key==first_line_key:
            is_second_read=1
        elif is_second_read==1 and line_key==first_line_key:
            break
        print (x1,x2,x3,x4,x5,y,line_key)
    #循环结束后，请求关闭所有线程
    coord.request_stop()
    coord.join(threads)
    sess.close()